home *** CD-ROM | disk | FTP | other *** search
/ Belgian Amiga Club - ADF Collection / BS1 part 47.7z / BS1 part 47 / Amiga plus 2 (1989)(Amiga Plus Magazine)[h QTX].7z / Amiga plus 2 (1989)(Amiga Plus Magazine)[h QTX].adf / Utility / virusx.docs < prev    next >
Encoding:
Text File  |  1989-03-03  |  27.5 KB  |  560 lines

  1.  
  2.               VirusX 3.2
  3.  
  4.            by Steve Tibbett
  5.  
  6.  
  7. VirusX 3.2 Release Note:
  8.  
  9. 8 new viruses, and one new option - CHECK.  If you say
  10. VirusX CHECK, VirusX will check RAM and installed disks, then
  11. quit.  Great for including VirusX with release disks.
  12.  
  13. Last Minute Bug Report:
  14.  
  15. VirusX waits for a NEWSIZE message before doing anything after
  16. changing the size of a window.  Now, the OS doesn't bother sending
  17. the NEWSIZE message if the window isn't currently selected.
  18.  
  19. Sooo, if you tell VirusX to resize the window somehow (using the
  20. right mouse button, maybe), then you de-select the VirusX window,
  21. VirusX will lock up.
  22.  
  23. I'll try and fix it next version.
  24.  
  25.  
  26.                         ...Steve
  27.  
  28.  
  29. Version Notes:
  30. --------------
  31. Version Notes are now in the VirusX.C file, as is information on
  32. some of the viruses.
  33.  
  34. Virus Notes:
  35. ------------
  36. Information about each of the individual files
  37. is at the beginning of the C file (just because I spend more time
  38. looking at it than I do looking at this).
  39.  
  40.     NOTE:
  41.  The AmigaPLUS disk does not contain the source files described in
  42.  this file.  The virus descriptions have been appended to these docs.
  43.  
  44. Introduction:
  45.  -------------
  46. Amiga Viruses have been following us around for some time now, and I think
  47. it's about time we got rid of it for good.
  48.  
  49. There are 2 classes of Viruses - There are the "Boot Block Viruses" and
  50. the rest of them.
  51.  
  52. Boot Block Viruses are named such because they all share this one
  53. trait:  They are always found in the Boot Block of a disk.  You cannot
  54. get one of these simply by downloading a program, nor through any
  55. non-bootable disk (although a program could be written which would
  56. install the virus when run).
  57.  
  58. Boot Block Viruses are very easy to get rid of - check any new disk
  59. with VirusX, and if it reports anything nonstandard, tread lightly.
  60.  
  61. Non-bootblock viruses are a little tougher to find, and can be near
  62. impossible to find without the right tools.  VirusX will be updated such
  63. that it finds any known virus, that's the best I can offer.
  64.  
  65. Please, I encourage you to give this program to anybody who might have
  66. a virus.  Including your local dealer - some of the dealers in this
  67. area have the virus all over their disks, which they allow customers to
  68. copy, and they don't do anything about it because they don't know how.
  69. VirusX makes it extremely simple.
  70.  
  71. Installing in your Startup Sequence:
  72. ------------------------------------
  73. You can put VirusX in your Startup-Sequence so that it is automatically
  74. run whenever you boot your system with whatever disk you install it on.
  75. Doing so is very simple - using any text editor, modify the
  76. "S:Startup-Sequence" file (Details on how to do this are available in
  77. many many books, and also in the manual that came with the system I
  78. believe), so that the Startup-Sequence contains simply "VirusX".    When run, it will open a
  79. small window so you know it's there (and it will display the occasional
  80. message in it).  Whenever a disk is inserted into any of the 3.5"
  81. drives, that disk is automagically checked for the SCA virus, and also
  82. checked to see if it's boot sector is "Standard".  If the disk has a
  83. nonstandard boot sector, it is either a new form of virus which I don't
  84. know about yet, or it is a commercial program which uses the boot block
  85. for  something constructive (like booting their game).
  86.  
  87. If VirusX finds a boot block it is suspicious about, it will present the
  88. user with a requester either warning him that the disk has the SCA virus
  89. (or any other current viruse), or telling him that the boot code is
  90. nonstandard.  In either case, he is given the option to either ignore
  91. it, or to Remove it.
  92.  
  93. If the user selects Remove, after he says he's SURE he wants to
  94. rewrite the disk's boot sector (Remember: Never rewrite the boot
  95. sector of a commercial program unless you KNOW that program doesn't
  96. use it for something else.  If the program gives you the AmigaDOS
  97. window before running, you know it is safe to repair that disk.).
  98. The boot code written back to the disk by VirusX is the same boot code
  99. that the AmigaDOS INSTALL command (and it's compatible counterpart on
  100. one of the fish disks) uses.
  101.  
  102. If you click in the little "VirusX" window, and type a number from 0
  103. to 3, (Corresponding to the drive # you would like to look at), VirusX
  104. will resize it's window to fit in the ASCII text of these two blocks,
  105. and allow you to view it.  When you run across a "Nonstandard Boot
  106. Block", you can now check and see if the boot block is some sort of
  107. new Virus (Assuming that the author of the Virus left a string in it)
  108. as you will see something like "Revenge Virus 1.2G" or whatever string
  109. that identifies the virus.  Note that not all viruses have text strings
  110. in them, so don't use this method alone to determine whether an
  111. unknown boot block is a virus or not.
  112.  
  113. Also, you can check to see which strain of the SCA virus you have
  114. (VirusX will report "an SCA virus", but will not tell you if it is the
  115. "LSD" virus, or the "Zorro/Willow" virus or whatever new ones may
  116. appear).
  117.  
  118. Generally, if boot code is capable of writing itself back to a different
  119. disk than the one it was loaded from, it is a virus.
  120.  
  121. VirusX Options:
  122. ---------------
  123.  
  124. Keystrokes:  (Remember, the VirusX window must be active to type these)
  125.  
  126.    0, 1, 2, 3:  Show you the boot block of whatever drive
  127.                 you select (0 would be DF0:, say), I will show
  128.                 you the Info window.
  129.  
  130.             C:  Cause VirusX to re-Check all inserted disks.
  131.  
  132.  
  133. Command Line Options:
  134.  
  135.     x,y : to change where the VirusX window appears, just put the numbers
  136.           you want it at on the command line.  For instance, to put it
  137.           at 50,30, just say VirusX 50 30.
  138.  
  139.    Check: This will cause VirusX to check Memory and any inserted disks,
  140.           then quit immediately without leaving the little window.
  141.  
  142.  
  143.  
  144.  
  145. Nut Alert:
  146. ----------
  147.  
  148. Of course, there are those of you who are thinking that I am some nut
  149. case trying to spread my own virus hidden under the guise of a virus
  150. checker.  Well, just for you, I've included the C source code.  Please,
  151. if you don't trust me, don't discard a useful utility as untrustworthy
  152. for no reason, CHECK THE SOURCE!  Recompile it if you think I'm trying
  153. to slip a fast one on you.  I just want to see viruses out of all of
  154. our lives.
  155.  
  156.  
  157. Distribution Notice:
  158. --------------------
  159. This program is Copyrighted, but is freely redistributable (It's NOT 
  160. Shareware).  Do what you want with it, but  Please don't use it for
  161. evil purposes. That's what I'm trying to prevent.  (If your conscience
  162. is compelling you to send me something, send me an original game you're
  163. bored with... It won't cost you anything, and it'll keep me busy for a
  164. few hours (or more...).
  165.  
  166. If you are not sure that this is the most current version of VirusX
  167. (and please, before sending me a "virus", check with your local BBS
  168. or user group for the latest version of VirusX to verify that it is
  169. indeed the latest), you will be able to get the latest version of
  170. VirusX though AmigaWorld soon, or so they tell me.  5 bucks, to cover
  171. shipping/handling - check the magazine for info.
  172.  
  173. I write PD/Shareware software in my spare time, and work full time
  174. during the day.  Since I don't do this as a business, I really
  175. can't answer all the mail I get - I barely have time to work on the
  176. program, let alone answering mail... I feel really badly about this,
  177. but there's not much I can do.  I am trying to reply to anybody who
  178. asked for a reply... working on it...  8-)  If you haven't heard from
  179. me, either I lost your letter (it's happened...), or you will hear
  180. from me soon.
  181.  
  182. (Addendum:  Sending me a self-addressed stamped envelope doesn't do
  183. me a whole lot of good because I live in Canada... Just thought
  184. I'd let you know, cuz some people have overlooked this).
  185.  
  186.  
  187. My address:
  188.  
  189.         Steve Tibbett
  190.         2710 Saratoga Pl. #1108
  191.         Gloucester, Ontario
  192.         K1T 1Z2
  193.  
  194.         My BBS: OMX BBS, 613-731-3419.
  195.  
  196.         I can be reached on BIX as "s.tibbett" and on People/Link
  197.         as "SteveX".  I'm also on Compuserve, but with their dumb
  198.         numbering system, I can never remember who I am.
  199.  
  200.  
  201. ---------------------------------------------------------------
  202.  
  203. VIRUS NOTES:
  204. ------------
  205.  
  206. Virus Notes used to be found here.  They are now in the
  207. VirusX.C source file itself - just type the file.  (If you're
  208. scared of 'C', just hit ^C when the comments are done).
  209.  
  210. Notes on some notable viruses are still here.
  211.  
  212.  
  213.  
  214. THE BYTE BANDIT VIRUS:
  215. ----------------------
  216. What the Byte Bandit virus does is once it's in
  217. memory, it copies itself to just above the high memory
  218. pointer on the first hunk of RAM it can find (Which means
  219. it's not always in the same place), wedges itself into the
  220. Interrupt Server chain, into the Trackdisk.device's vectors,
  221. and creates itself a Resident structure so it can hang
  222. around after reboot.
  223.  
  224. It watches EVERY disk inserted, and will write itself to ANY
  225. bootable disk that is inserted!
  226.  
  227. Also, if you Install a disk while this virus is going, it will  just
  228. copy itself back to the disk - which is why it has to be wiped it from
  229. memory.
  230.  
  231. When VirusX finds this virus on a disk, it will also display a "Copy
  232. Count" which is the number of disks that have been infected by that
  233. "Branch" on the "Tree" that the virus is on -  If you infect a disk with
  234. your copy, and your copy is number 300, then that copy will be #301.  If
  235. he infects somebody,  that will be #302, but on YOUR copy, two
  236. infectations down the line, there will be another #302... Anyways, the
  237. copy count on MY Byte Bandit virus is #879...
  238.  
  239. Note that VirusX will check RAM for this virus as well as the disk.
  240. This was necessary as you can tell from the description above.
  241.  
  242. Special thanks must go here to Dave Hewett, who, 2 days after I gave him
  243. a copy of the virus, gave me a printed, commented disassembly of the
  244. virus with meaningful labels and everything I needed to stomp it -
  245. Thanks Dave!
  246.  
  247. Thanks must also go to Bruce Dawson of CygnusSoft Software, (author of
  248. that great program, CygnusEd), who went to the trouble of being the First
  249. person to send me this Virus.
  250.  
  251.  
  252. -------------------------------------------------------------------
  253.  
  254. The IRQ Virus:
  255. --------------
  256.  
  257. The IRQ Virus is the latest Amiga Virus (that I've seen anyway).  This
  258. one stands out from the crowd, in that it is NOT found in the boot
  259. block.
  260.  
  261. This Virus attaches itself to executable programs.  It's prime target
  262. is the C:DIR command, but it will also look at your startup sequence
  263. and attach itself to the first executable program found in the startup
  264. sequence.
  265.  
  266. A sample chain of events:
  267.  
  268.    - You download or otherwise acquire a new program.  This program
  269.      happens to be infected.
  270.    - You execute this program.
  271.    - The Virus then attaches itself to memory (by taking over the
  272.      OldOpenLibrary() vector), and adds a KickTagPtr (for no apparent
  273.      reason).
  274.    - Now, you're on DF0: and you run a program that uses the
  275.      OldOpenLibrary() vector (hard to predict which ones do...),
  276.      the Virus will open your startup sequence and picks the first
  277.      filename it sees in it, see if it's executable, and if so, it
  278.      will write itself into that file.  IF it's not executable, it
  279.      will try and write to the DIR command on that disk.
  280.  
  281. As you can see, the only files this virus will infect, will be whatever
  282. comes first in your startup sequence, and the DIR command.  The only way
  283. this Virus could possibly spread via modem is through deliberate sabotage,
  284. (unless the guy actually DID have the program as the first thing in his
  285. startup sequence before sending it to you).
  286.  
  287.  
  288. WHAT IT DOES
  289.  
  290. This Virus is mostly a harmless joke.  It will not kill commercial programs
  291. (at least not any I've seen so far), it doesn't attack anything,
  292. doesn't do anything malicious.  It's not nice to have around, but it's
  293. certainly better than a malicious virus!
  294.  
  295. It changes the title bar of the Initial CLI window when you boot, and it
  296. will try to write to any disk inserted - thus bringing up the "Volume
  297. whatever is write protected" requester whenever you insert a write
  298. protected disk.
  299.  
  300. It will write itself to any disk you execute a file off of, possibly to the
  301. DIR command, possibly to the first thing in the startup sequence,
  302. depending on the startup sequence.
  303.  
  304. This virus will not work under Kickstart 1.3 - you will get Software
  305. Error requesters whenever you run an infected program.  I'm not sure
  306. why, but this is probably good.
  307.  
  308.  
  309. HOW TO KNOW IF YOU HAVE THIS VIRUS
  310.  
  311. You cannot identify a file that has this virus in it just by looking at it.
  312. The virus encrypts the text parts of itself, and encrypts it differently on
  313. each copy - so you can't learn to recognize it.
  314.  
  315. You can tell your system is infected if you put in a write protected
  316. workbench disk (or any disk that has a startup sequence), and if the system
  317. brings up a "Volume whatever is write protected" requester, then this virus
  318. is in RAM attempting to infect this disk.
  319.  
  320. Running VirusX 3.1 will tell you that this virus is in RAM, and VirusX will
  321. remove it from RAM.
  322.  
  323. The other thing this Virus does is, when it first installs itself in your
  324. system upon reboot, it changes the title bar of the current window,
  325. (usually the initial CLI window, since it IS the first thing in your startup
  326. sequence), to say something like "AmigaDOS Presents:  The IRQ Virus,
  327. V41.0".  This is of course a dead giveaway.
  328.  
  329.  
  330. HOW TO GET RID OF THIS VIRUS
  331.  
  332. To get the virus out of RAM, run VirusX 3.1 and it will tell you if it
  333. found it and that it removed it if it did.  VirusX will check disks the
  334. same way that the Virus does - it will look at the startup sequence,
  335. determine if the first file found (or the DIR command) are infected, and
  336. give you the option of repairing them if they are infected.
  337.  
  338. You can also get rid of this virus simply by deleting all infected programs
  339. and rebooting.  This virus will not hang around after a reboot.
  340.  
  341. Because this virus can hit a number of files, not all of which VirusX will
  342. find, also included is a small program by Dan James called KV, "KillVirus".
  343. This program will check a whole directory's worth of files for this
  344. specific virus.
  345.  
  346. VirusX 3.0 will look in the same places the Virus does for possibly
  347. infected programs.  If it finds one, it will pop up a window and show
  348. you where it found it, and ask if it's OK to remove it.
  349.  
  350.  
  351. HOW TO MAKE SURE YOU DON'T GET THIS VIRUS
  352.  
  353. Keep VirusX 3.1 running when you test new programs.  VirusX will alert you
  354. as soon as it sees this virus appear in memory - probably the last program
  355. you ran is infected if VirusX reports it found the virus.
  356.  
  357. ==========================================================================
  358.  
  359. Virus Notes:
  360. ------------
  361.  
  362. These are things that you probably should know, but may not about
  363. what can happen with Viruses.
  364.  
  365.  - If you are trying to format a disk, and you always get a message
  366.    that Cylinder #0 of the disk is bad, it's quite possible you have
  367.    a virus in RAM (or a bad disk).  This is because when the Formatter
  368.    writes to block 0, some viruses will prevent this (trying to save
  369.    themselves).  When the formatter reads the block back to verify,
  370.    it's not the same and it panics.
  371.  
  372.  - Some commercial programs will not work with some viruses in RAM.
  373.  
  374.  - Not all computer failures are caused by viruses!  If you are having
  375.    problems, and you have checked your disks with VirusX (and it reports
  376.    them as clean), try looking elsewhere for the problem.
  377.  
  378.  - There is at least one virus that can (more or less accidentally) hit
  379.    hard disks.  Some of the viruses use the DoIO() vector to watch for
  380.    any read (or write) attempts at block 0.  But not always making
  381.    sure that it is block 0 of the Floppy drive - and if someone is
  382.    writing to block 0 of the hard disk, and the virus intercepts this,
  383.    it can write itself to the hard disk.  The virus CANNOT load from
  384.    hard disk - the hard disk's boot block is never executed.  But if
  385.    your hard disk is an FFS volume, then writing the virus to it will
  386.    in effect change it back to an OFS volume - making what's on it
  387.    unusable.  You can fix this with DiskDoctor (I believe), or using
  388.    DiskX.
  389.  
  390.  
  391. ==========================================================================
  392.  
  393. I'd like to thank Lars Wilklund, Jason Allen Smith, Bruce Dawson,
  394. Robb Walton, Pete Foley, and all the others who have sent me disks
  395. whom I cannot remember.
  396.  
  397. Mucho thanks also to Dan James, who's been helping me all along,
  398. and who did a lot of the finding out about the IRQ Virus.
  399.  
  400. There are MORE viruses out there!  Please, send them to me!
  401.  
  402.         ...Steve
  403. /************************************************************************/
  404. /*                                                                      */
  405. /*  Viruses Dealt With:                                                 */
  406. /*  -------------------                                                 */
  407. /*                                                                      */
  408. /*      SCA             - The SCA is the simplest virus to deal with,   */
  409. /*                        as it's not actually DOING anything except    */
  410. /*                        hiding in memory, until you reboot.           */
  411. /*                        We just look at CoolCapture and fix it to get */
  412. /*                        it out of RAM.                                */
  413. /*                                                                      */
  414. /*      Byte Bandit     - The Byte Bandit virus takes the DoIO() vector */
  415. /*                        and redirects it through itself.  Thus, any   */
  416. /*                        attempt to read or write the boot block (ie,  */
  417. /*                        AmigaDOS trying to figure out what kind of    */
  418. /*                        disk it is) results in the BB writing itself  */
  419. /*                        onto that disk.  VirusX couldn't just rewrite */
  420. /*                        the boot block, we have to get him out of RAM */
  421. /*                        first.  This virus also has an interrupt that */
  422. /*                        crashes the machine every 5 minutes or so     */
  423. /*                        after it's infected a few of your disks.  Ow. */
  424. /*                        It stays in memory not via the Capture        */
  425. /*                        vectors, but by a Resident module.            */
  426. /*                                                                      */
  427. /*      Revenge         - Basically, a Byte Bandit clone except it will */
  428. /*                        bring up an obscene pointer a few minutes     */
  429. /*                        after you reboot.  We treat it much like the  */
  430. /*                        byte bandit.                                  */
  431. /*                                                                      */
  432. /*      Byte Warrior    - Jumps right into 1.2 Kickstart.  Won't work   */
  433. /*                        under 1.3.  Hangs around via Resident struct, */
  434. /*                        doesn't do any damage.                        */
  435. /*                                                                      */
  436. /*      North Star      - Like SCA, hangs around via CoolCapture,       */
  437. /*                        killing CoolCapture kills the North Star.     */
  438. /*                                                                      */
  439. /*      Obelisk Softworks Crew                                          */
  440. /*                      - Hangs around via CoolCapture, also            */
  441. /*                        watches reads of DoIO() (but doesn't          */
  442. /*                        infect EVERY disk - onlyt ones you boot       */
  443. /*                        off of)                                       */
  444. /*                                                                      */
  445. /*       IRQ            - This is the FIRST Non-Bootblock Virus.        */
  446. /*                        It copies itself from place to place via the  */
  447. /*                        first executable program found in your        */
  448. /*                        startup-sequence.  It SetFunction's           */
  449. /*                        OldOpenLibrary(), has a KickTagPtr,           */
  450. /*                        and lives in the first hunk of an             */
  451. /*                        infected program.                             */
  452. /*                        THANKS! to Gary Duncan and Henrik Clausen for */
  453. /*                        being the first to send this one to me!       */
  454. /*                                                                      */
  455. /*  Pentagon Circle     - This one looks at the DoIO vector, and has    */
  456. /*                        a CoolCapture vector.  It will write itself   */
  457. /*                        over any virus inserted, but not onto         */
  458. /*                        anything else.  (Neat idea!).  No danger,     */
  459. /*                        easy to eliminate.  Holding left button       */
  460. /*                        while booting with this one shows different   */
  461. /*                        screen colour, but doesn't get rid of it.     */
  462. /*                        Thanks to Bill at CMI (CMI*BILL on Plink)     */
  463. /*                        for sending me this one!                      */
  464. /*                                                                      */
  465. /*  SystemZ Virus Protector                                             */
  466. /*                      - I took this one out.  It's not really a       */
  467. /*                        'Virus' in that it won't overwrite a disk     */
  468. /*                        without asking you first.  Besides, it seems  */
  469. /*                        a lot of people LIKE the SystemZ Virus        */
  470. /*                        Protector (though it isn't perfect).          */
  471. /*                                                                      */
  472. /*   Lamer Exterminator - THIS one was a bugger.  Yet another virus     */
  473. /*                        aimed at hurting people.  Y'see, a Lamer      */
  474. /*                        is apparently the worst kind of pirate -      */
  475. /*                        one who doesn't crack software, doesn't       */
  476. /*                        write software, just collects names and       */
  477. /*                        addresses and collects and spreads software.  */
  478. /*                        Lamers don't do anybody any good - and the    */
  479. /*                        guy behind this Virus took it upon himself    */
  480. /*                        to make their (and our) lives miserabler.     */
  481. /*                        Anyway, this virus loads into RAM into a      */
  482. /*                        different location every time (using a        */
  483. /*                        random location).  It is encrypted on the     */
  484. /*                        disk so you can't SEE the name of it, and     */
  485. /*                        it never actually SHOWS the name (but it's    */
  486. /*                        definately there).  It changes the            */
  487. /*                        encryption key used each time it is written   */
  488. /*                        back to disk.  It has a counter and will      */
  489. /*                        wait until the machine has been reset 2 times */
  490. /*                        OR until 3 disks have been infected, and will */
  491. /*                        then pick a DATA block (Only a DATA block -   */
  492. /*                        FFS disks are safe, I guess), randomly, and   */
  493. /*                        will write the word 'LAMER!' all through it.  */
  494. /*                        This is obviously not good, and will cause    */
  495. /*                        random disk errors.  This is the worst kind   */
  496. /*                        of havoc to wreak on the new user - and this  */
  497. /*                        virus is EVERYWHERE!  I've gotten it from 5   */
  498. /*                        people in the last week alone (all from       */
  499. /*                        different countries!  Ack!).  Anyways, credit */
  500. /*                        for being the first with this one is          */
  501. /*                        Christian Schneider.  Thanks, Christian!      */
  502. /*  Might as well break the margin convention here, eh?  Anyways,       */
  503. /*  something else I thought of about this virus:  It introduces a NEW  */
  504. /*  way for a Virus to stay in RAM.  Y'see, if ExecBase is okay at      */
  505. /*  reboot time (Exec keeps a checksum, among other things, and checks  */
  506. /*  to see if anything has been corrupted quite carefully).  Anyways,   */
  507. /*  if Exec thinks ExecBase is okay, it doesn't bother rebuilding it.   */
  508. /*  Sooo, this virus sets the SumKickData() vector to point at itself.  */
  509. /*  Then at Reboot when this vector gets called after reset, the virus  */
  510. /*  ReInstalls himself.  At least this is what I think is happening.    */
  511. /*  This virus sets up a Resident structure, but never sets the Match   */
  512. /*  Word - either this means we don't need the MatchWord or it means    */
  513. /*  his SumKickData() is doing the recovery job - either way, it's      */
  514. /*  new!  3 points for originality.                                     */
  515. /*                                                                      */
  516. /*  Graffiti - The first virus to come with rotating 3-d graphics!      */
  517. /*             It's neat - you might want to trigger it (I'm not sure   */
  518. /*             how) before nuking it.  Anyway, this one just sets       */
  519. /*             CoolCapture(), does something with DoIO() during the     */
  520. /*             reboot but sets it back to normal before anybody gets    */
  521. /*             to look at it.  Lots of code is taken by the graphics    */
  522. /*             stuff.  I just clear the CoolCapture vector.  [yawn]     */
  523. /*                                                                      */
  524. /*  Old Northstar - Poof.                                               */
  525. /*                                                                      */
  526. /*  16 Bit Crew - Well, I didn't actually have to DO anything to get    */
  527. /*               VirusX to recognize it... because it seems to operate  */
  528. /*               like the Graffiti Virus.  If the 16 bit crew is in     */
  529. /*               RAM, VirusX will say it removed the Graffiti virus.    */
  530. /*               Oh well.  8-)                                          */
  531. /*                                                                      */
  532. /*  DiskDoktor - I spent more time on this one than on any other.       */
  533. /*               Y'see, this virus does lots of things.  The first one  */
  534. /*               for some reason was quite funny to me.  heh            */
  535. /*               What it would do is after you have rebooted 5 times,   */
  536. /*               each time you reboot after that, the virus would eat   */
  537. /*               10K times the total number of reboots - so after       */
  538. /*               rebooting 10 times, you would be short about 100K.     */
  539. /*               This virus also starts up another TASK.  I'm not       */
  540. /*               exactly sure when it happens, but another task named   */
  541. /*               'clipboard.device' will appear at a priority of -120,  */
  542. /*               and will continually bash the Virus' vectors into the  */
  543. /*               Coldcapture, Coolcapture, Warmcapture (which it sets   */
  544. /*               to $ff000000 just to annoy), and the DoIO() vector.    */
  545. /*               When I was working on this one, I figured I just had   */
  546. /*               to restore the old values to the DoIO() vector, but as */
  547. /*               soon as I did so, the Virus restored them - and since  */
  548. /*               I didn't disassemble the entire thing, I didn't realize*/
  549. /*               this until I wasted time looking for other faults.     */
  550. /*               This one also allocates some memory, copies some code  */
  551. /*               out of Exec into this memory, and executes it.  I      */
  552. /*               never bothered to figure out why - Once it's gone, it's*/
  553. /*               gone.                                                  */
  554. /*                                                                      */
  555. /*  Thanks also to Robb Walton for being the first to send one of the   */
  556. /*  other ones, (but I can't remember which one anymore... 8-(  )       */
  557. /************************************************************************/
  558.  
  559.